分类
联系方式
  1. 新浪微博
  2. E-mail

Maeiee Weekly No.3

文章

  1. 《Flutter 动态化热更新的思考与实践(二)----Dart 代码转换AST》
    1. 如何将 Dart 代码转换为 AST
    2. Dart Analyzer
      1. 官方提供库,Dart 源码转 AST
      2. 衍生工具:
        1. dartfmt 格式化
        2. dartdoc 文档
        3. dart analysis server 语法预分析服务
    3. parseFile:传入 Dart 文件路径,返回解析结果 ParseStringResult
    4. CompilationUnit:
      1. 未处理的编译单元
      2. AST 语法树根节点
    5. Visitor 模式访问语法树:
      1. 基类 AstVisitor
      2. 范型:AstNode 转成树节点的数据结构,如 Map
      3. SimpleAstVisitor 100 多个抽象方法
        1. visitVariableDeclaration:变量声明
        2. visitVariableDeclarationList:变量声明
        3. visitSimpleIdentifier:标识符定义
        4. visitBinaryExpression:运算表达式结构
        5. visitIntegerLiteral:数值定义
    6. AstNode:Analyzer 定义的 Ast 节点
      1. node.apply:传入 Visitor 递归解析
  2. 《顶级独立游戏开发者谈独立游戏在当前环境下的生存机会》
    1. 生态饱和
      1. 手游市场脱颖而出越来越难
      2. 数字生态人满为患
    2. 市场包容性与鼓励
      1. AppStore 上线独立游戏主题页
      2. 2人游戏开发团队与巨头享有同样的市场曝光机会
      3. AppStore、GooglePlay 两个巨大的市场
      4. 厂商鼓励独立游戏(谷歌、任天堂、苹果)
        1. 看到了这个市场的重要性
    3. 团队特点:规模小、营销开支不足、试验期长
    4. 付费:
      1. 让游戏必须付费的好点子
      2. 完全免费精品游戏,投入产出比太低
    5. 与巨头竞争
      1. 优势
        1. 更能发挥创造力
          1. 玩家厌倦重复相同的游戏机制
        2. 运行成本低,更加灵活
        3. 与巨头同样的平台,上传市场,10亿潜在用户
      2. 劣势
        1. 同类竞争注定要输
        2. 营销资源少,推广劣势
        3. 研发资源少
    6. 艺术性与品味
      1. 独立游戏的创新和创造力
      2. 陶冶玩家品味
      3. 改变对手游印象
  3. 《PostmarketOS》
    1. 手机和其他移动设备上的真正 Linux 发行版
    2. 手机的问题
      1. 买回来很快官方就不维护了
      2. Android、iOS 都是有高墙的花园
    3. PostmarketOS
      1. 在手机上运行 Linux 发行版
      2. 持续维护,注重安全、隐私
    4. 架构
      1. 基于 Alpine Linux
      2. 提及小于 10MB
      3. 构建脚手架工具 pmbootstrap
      4. 通用的包管理
      5. 完全不使用 Android 构建系统
    5. 内核
      1. 尽可能的适配主线 Linux 内核
      2. 无法适配主线的采用下游内核
    6. 图形界面
      1. 支持多种界面:Plasma Mobile、Phosh、Sxmo
      2. 每种设备一个镜像
    7. 最近流行的在 iPhone、iPad 上运行 Linux,就是基于 PostmarketOS 来运行
  4. 《React Explained for Product Managers》
    1. 关于前端组件化你需要知道的所有事情
    2. 用 React 构建程序就像组装乐高汽车玩具
    3. React 是开发 Web 应用的最流行库
    4. 术语:
      1. UI:系统与用户间的交互接口
      2. UE:用户在与应用交互过程中的体验
      3. DOM:浏览器中可视化元素的数据结构
    5. React 分为 3 层:
      1. 组件 & Hooks
        1. 组件:
          1. 组件就像乐高积木
          2. 应用最小粒度
          3. 面向组件思考(Component-oriented-thinking)
          4. 复杂组件由简单组件组合而来
        2. Hooks:
          1. Hooks 是功能块
          2. React 中用于丰富组件功能的方式
          3. 将业务逻辑通过 Hooks 组装,并与组件相关联
      2. 核心算法
        1. Virtual DOM
          1. 位于组件与浏览器之间的逻辑层
          2. Rendering
            1. 当有新的变化或数据可以让用户看到时
            2. React 首先计算哪些组件需要更新
            3. 然后用HTML组成用户界面并发送给浏览器
          3. Reconciliation
            1. 比较用户界面或数据更新所引发的变化
            2. 计算如何在浏览器中渲染 UI 更新
            3. 增量渲染,效率和性能更高,体验更好
          4. Scheduling
            1. React 有能力暂停和恢复组件的更新
            2. 非紧急的更新给紧急更新让步
            3. 暂停慢速更新,完成紧急更新并渲染 UI 变化,然后再恢复慢速更新,直到完成
      3. 浏览器
        1. 不仅是React渲染的接收端,也是用户交互的起点
        2. 事件发生时,会触发 React 组件的一系列变化
        3. React 会接受这些变化,并使用核心算法找出 Diff,安排更新,然后渲染用户界面
    6. React 生态
      1. 组件库
        1. 大量组件库供复用
        2. MUI、Visx、Framer Motion
      2. Web 应用框架
        1. 框架提供了丰富的工具,以帮助开发人员构建高性能的网络应用。
        2. Next.js:用于生产的 React 框架
        3. Remix:全栈 Web 框架
        4. Gatsby:快速、灵活的框架
      3. 测试库
        1. 随着应用变得复杂,可以将测试纳入开发周期中获益,以保持敏捷性并向用户提供高质量的产品。
        2. 流行的测试库:React Testing LibraryEnzyme
        3. 通用测试库:Jest、Cypress、Playwright
  5. 《InfoQ 2022 年趋势报告:DevOps 与云计算篇》
    1. 可观测:
      1. 企业充分了解系统数据健康状况
      2. 沿着管道自动监控数据
      3. 促进数据问题故障排除和预防
    2. Serverless:
      1. 无服务器函数、无服务器数据库
      2. 为变化而设计(design for change)
      3. 现代云开发:动态、事件驱动、面向微服务
    3. 边缘计算:
      1. 在靠近终端用户的地方提供数据处理、分析和存储
      2. 云供应商将他们的基础设施和服务扩展到了更多的地方
    4. 平台工程:
      1. 云原生工程师逐步成为“全周期开发者”,他们需要编码、交付和运行应用程序。
      2. 特性左移”,如安全性、可靠性、可扩展性等
      3. 平台工程师的角色正在各种规模的组织中兴起。
    5. 云无关的无服务器平台:OpenFaaS、OpenFunction、Knative、Kubeless
    6. 书籍:《团队拓扑学》
  6. 《一些Android开发死局》
    1. 作者总结了一些问题挺有价值:
      1. Android 国内保活
      2. 反抓包
      3. 个人开发者海外收款
      4. 公司注册